package com.ruoyi.coffee.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.coffee.domain.Addresses;
import com.ruoyi.coffee.dto.AddressDto;
import com.ruoyi.common.core.domain.AjaxResult;

/**
 * 收货地址Service接口
 * 
 * @author dxj
 * @date 2025-01-07
 */
public interface IAddressesService extends IService<Addresses>
{
    /**
     * 查询收货地址
     * 
     * @param id 收货地址主键
     * @return 收货地址
     */
    public Addresses selectAddressesById(Long id);

    /**
     * 查询收货地址列表
     * 
     * @param addresses 收货地址
     * @return 收货地址集合
     */
    public List<Addresses> selectAddressesList(Addresses addresses);

    /**
     * 新增收货地址
     * 
     * @param addresses 收货地址
     * @return 结果
     */
    public int insertAddresses(Addresses addresses);

    /**
     * 修改收货地址
     * 
     * @param addresses 收货地址
     * @return 结果
     */
    public int updateAddresses(Addresses addresses);

    /**
     * 批量删除收货地址
     * 
     * @param ids 需要删除的收货地址主键集合
     * @return 结果
     */
    public int deleteAddressesByIds(Long[] ids);

    /**
     * 删除收货地址信息
     * 
     * @param id 收货地址主键
     * @return 结果
     */
    public int deleteAddressesById(Long id);


    /**
     * 微信用户新增用户地址
     * @param addressDto
     * @return
     */

    AjaxResult saveUserAddress(AddressDto addressDto);

    /**
     * 查询用户的所有地址
     * @param userId
     * @return
     */
    AjaxResult getAddressesListById(Long userId);

    /**
     * 用户地址修改
     * @param addressDto
     * @return
     */
    AjaxResult updateUserAddress(AddressDto addressDto);

    /**
     * 设置默认地址
     *
     * @param addressId
     * @param userId
     * @param addressId
     * @return
     */

    AjaxResult updateDefaultAddress(  Long addressId,Long userId);
}
